IDA Pro分析Java文件时,容易把“Java处理器模块”和“JDK运行环境”混在一起。IDA本身能够识别JAR归档,并带有Java处理器模块来分析Class字节码,单纯查看Java Class通常不依赖外部JDK。真正需要配置JDK的情况,多见于调用Java程序的第三方插件、脚本或辅助工具。遇到JAR能打开但Class无法正常分析,或者插件提示找不到Java时,要先判断故障发生在IDA自身的Java分析,还是外部工具调用环节,这样不会在JAVA_HOME上反复折腾。
IDA Pro配合Hex-Rays Decompiler,可以把已经识别的机器代码转换成接近C语言形式的伪代码,并进一步保存成.c文件。这种结果主要方便阅读程序逻辑,并不等同于恢复原项目源码,原来的变量名、注释、宏定义以及部分类型信息通常已经不存在。导出后发现少了函数、某段只有声明,或者个别位置没有生成代码,也不一定是保存动作出了问题,函数识别状态、反编译失败和类型分析都会影响最终内容。
IDA Pro里按F5,本意是把当前函数交给Hex-Rays Decompiler生成伪代码,但这个动作有几个前提,当前地址得属于有效函数,IDA已经加载适合当前架构的反编译器,同时授权和数据库信息也要正常。有时按键以后完全没有窗口变化,有时会弹出错误提示,还有一种情况是伪代码窗口能打开,却卡在某个函数上。遇到这些情况,先分清F5有没有被调用,再检查函数和反编译器状态,排起来会清楚不少。
IDA Pro中的代码着色主要用于增强反汇编内容的层次感,也可以在逆向分析过程中标记关键函数、重要分支和待确认代码。不同着色方式对应的范围并不相同,有些控制整个界面的语法配色,有些只作用于某条指令、一个基本块或一个函数。围绕“IDA Pro代码着色怎么设置,IDA Pro代码着色不生效如何调整”,需要先分清颜色的作用对象,再判断异常来自视图差异、局部覆盖还是主题配置。
IDA Pro在分析大型程序时,经常需要同时打开反汇编、伪代码、函数列表、字符串、导入表和调试窗口。IDA Pro桌面布局怎么保存,IDA Pro桌面布局重置后如何恢复,主要涉及Desktop配置。IDA可以保存主窗口、工具栏以及数据库子窗口的位置和状态,因此把常用分析环境保存下来后,可以在窗口被拖乱、误重置或切换分析场景后快速恢复。